package com.ruoyi.system.api.mapper;

import com.ruoyi.system.api.domain.ReportInfo;
import com.ruoyi.system.api.domain.ServiceLog;
import com.ruoyi.system.api.domain.ServiceLogVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 服务日志 与服务1对1关联st_plan_detailsMapper接口
 * 
 * @author shihx
 * @date 2020-03-09
 */
public interface ServiceLogMapper
{
    /**
     * 查询服务日志 与服务1对1关联st_plan_details
     * 
     * @param id 服务日志 与服务1对1关联st_plan_detailsID
     * @return 服务日志 与服务1对1关联st_plan_details
     */
    public ServiceLog selectServiceLogById(Long id);


    public List<Map<String,String>> selectReportInfoByLogId(Long id);
    /**
     * 查询服务日志 与服务1对1关联st_plan_details列表
     * 
     * @param serviceLog 服务日志 与服务1对1关联st_plan_details
     * @return 服务日志 与服务1对1关联st_plan_details集合
     */
    public List<ServiceLog> selectServiceLogList(ServiceLog serviceLog);
    //查询未关联日志
    public List<ServiceLog> selectUnRelationServiceLogList(ServiceLog serviceLog);

    /**
     * 新增服务日志 与服务1对1关联st_plan_details
     * 
     * @param serviceLog 服务日志 与服务1对1关联st_plan_details
     * @return 结果
     */
    public int insertServiceLog(ServiceLog serviceLog);

    /**
     * 修改服务日志 与服务1对1关联st_plan_details
     * 
     * @param serviceLog 服务日志 与服务1对1关联st_plan_details
     * @return 结果
     */
    public int updateServiceLog(ServiceLog serviceLog);

    /**
     * 删除服务日志 与服务1对1关联st_plan_details
     * 
     * @param id 服务日志 与服务1对1关联st_plan_detailsID
     * @return 结果
     */
    public int deleteServiceLogById(Long id);

    /**
     * 批量删除服务日志 与服务1对1关联st_plan_details
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteServiceLogByIds(String[] ids);

    /**
     * 获取接受任务时间、到达现场时间
     * @param serviceNo
     * @return
     */
    public List<Map<String, Object>> findSendTime(@Param("serviceNo") String serviceNo, @Param("enginnerId") String enginnerId);

    /**
     * 日志管理查询未关联服务报告的日志
     * @param serviceLog
     * @return
     */
    public List<Map<String, Object>> selectUnboundList(Map<String, Object> serviceLog);

    public List<ServiceLog> selectServiceLogs(@Param("reportId") Long reportId);

    public List<ServiceLog> selectServiceLogsList(@Param("serviceNo") String serviceNo, @Param("enginnerId")  Long enginnerId);

    //与selectServiceLogsList目的相同，只是不用flag区分日志是否连续，此处通过逻辑处理
    public List<ServiceLog> selectServiceLogsListNoflag(@Param("serviceNo") String serviceNo, @Param("enginnerId")  Long enginnerId);

    public void editServiceLog(Map<String, Object> serviceLogVo);

    public int updateReoprtId(ServiceLog serviceLog);

    List<Map<String, Object>> selectBoundList(Map<String, Object> serviceLog);

    public List<ServiceLog> selectTimeLog(Map<String, Object> serviceLog);

    public List<ServiceLog> selectServiceLogsListNoflags(@Param("serviceNo") String serviceNo, @Param("enginnerId")  Long enginnerId);

}
